namespace SmartHealthcare.Write.Api.DTo
{
    /// <summary>
    /// 出院结算结果DTO
    /// </summary>
    public class DischargeSettlementResultDto
    {
        /// <summary>
        /// 病人卡号
        /// </summary>
        public string MedicalCard { get; set; } = string.Empty;

        /// <summary>
        /// 病人姓名
        /// </summary>
        public string PatientName { get; set; } = string.Empty;

        /// <summary>
        /// 药品费用
        /// </summary>
        public decimal MedicineFee { get; set; }

        /// <summary>
        /// 住院费用
        /// </summary>
        public decimal HospitalizationFee { get; set; }

        /// <summary>
        /// 总费用
        /// </summary>
        public decimal TotalFee { get; set; }

        /// <summary>
        /// 预交金额
        /// </summary>
        public decimal AdvancePayment { get; set; }

        /// <summary>
        /// 待支付金额
        /// </summary>
        public decimal PendingAmount { get; set; }

        /// <summary>
        /// 结算单图片路径
        /// </summary>
        public string SettlementImagePath { get; set; } = string.Empty;

        /// <summary>
        /// 出院时间
        /// </summary>
        public DateTime DischargeTime { get; set; }

        /// <summary>
        /// 药品明细列表
        /// </summary>
        public List<MedicineDetailDto> MedicineDetails { get; set; } = new List<MedicineDetailDto>();
    }

    /// <summary>
    /// 药品明细DTO
    /// </summary>
    public class MedicineDetailDto
    {
        /// <summary>
        /// 药品名称
        /// </summary>
        public string MedicineName { get; set; } = string.Empty;

        /// <summary>
        /// 规格
        /// </summary>
        public string Specification { get; set; } = string.Empty;

        /// <summary>
        /// 单价
        /// </summary>
        public decimal UnitPrice { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// 总金额
        /// </summary>
        public decimal TotalAmount { get; set; }
    }
} 